package edu.nf.relaxenjoy.service;

import com.github.pagehelper.PageInfo;
import edu.nf.relaxenjoy.domain.dto.FollowDTO;
import edu.nf.relaxenjoy.domain.vo.FollowVo;
import edu.nf.relaxenjoy.domain.vo.TrendVo;

import java.util.List;

/**
 * @author zhu
 * @date 2024-12-19
 */
public interface FollowService {

    /**
     * 得到当前用户和关注的所有动态
     *
     * @param page
     * @param limit
     * @param uid
     * @return
     */
    List<TrendVo> getAllFollowTrends(long page, long limit, String uid);

    /**
     * 根据类型获取所有关注和粉丝
     *
     * @param uid
     * @param type 0代表获取所有粉丝，1代表获取所有关注用户
     * @return
     */
    PageInfo<FollowVo> getAllFriend(long page, long limit, String uid, Integer type);

    /**
     * 关注用户
     *
     * @param followDTO
     * @return
     */
    void followUser(FollowDTO followDTO);

    /**
     * 查看是否关注用户
     *
     * @param uid
     * @param fid
     * @return
     */
    boolean isFollow(String uid, String fid);

    /**
     * 删除关注
     *
     * @param followDTO
     * @return
     */
    void clearFollow(FollowDTO followDTO);
}
